<?php
/*

*/

  /* ============================
    Liste des variables attendues
   ------------------------------
    POST ACTION_TAG  = ADD|UP_CAT|UP_NOM|DEL
    POST ID_ROOT_TAG = int
    POST NOM_TAG     = string
    POST NEW_NOM_TAG = string
   =========================== */

$action = (!empty($_POST['ACTION_TAG']))  ? cleanVar($_POST['ACTION_TAG'])       : null;
$idRoot = (!empty($_POST['ID_ROOT_TAG'])) ? cleanVar($_POST['ID_ROOT_TAG'],true) : null;
$nom    = (!empty($_POST['NOM_TAG']))     ? cleanVar($_POST['NOM_TAG'])          : null;
$newNom = (!empty($_POST['NEW_NOM_TAG'])) ? cleanVar($_POST['NEW_NOM_TAG'])      : null;

$admin     = (bool)$_SESSION['IS_ADMIN'];
$nbrAction = 0;

//--- bug si on fait des actions sur un tag qui n existe pas alors il n y a pas d erreur

try
{
  // DROITS: si il est identifié
  if(!isset($_SESSION['IDENTIFICATION_OK']))
    {
      throw new ListerException(204);
    }

  if(is_null($nom) || is_null($action)) 
    {
      throw new ListerException(15);
    }
  
  $tag = new Tag($nom, $idRoot);

  // ajouter tag
  if($action == 'ADD')
    {
      // DROITS: nouveau tag: si il est identifie
      $tag->enregistrer();    	
      $nbrAction++;
    }
  
  // modifier le nom du tag
  if($action == 'UP_NOM' && !is_null($newNom))
    {
      // DROITS: renommer tag: si il est admin
      if(!$admin)
	{
	  throw new ListerException(205);
	}

      $tag->renommer($newNom);
      $nbrAction++;
    }
  
  // modifier la catégorie du tag
  if($action == 'UP_CAT' && !is_null($idRoot))
    {
      // DROITS: changer le tag de categorie: si il est admin
      if(!$admin)
	{
	  throw new ListerException(206);
	}

      $tag->changerCategorie($idRoot);
      $nbrAction++;
    }
  
  // supprimer tag
  if($action == 'DEL')
    {
      // DROITS: supprimer le tag: si il est admin
      if(!$admin)
	{
	  throw new ListerException(207);
	}

      $tag->supprimer();
      $nbrAction++;
    }

  if($nbrAction == 0)
    {
      throw new ListerException(15);
    }
  
  $ok = true;
  $template->assign_vars(array('OK' => 'ok'));
  $template->assign_vars(array('NOMBRE_ACTION' => $nbrAction));
  $template->assign_vars($tag->returnArray());
}
catch(ListerException $e)
{
  $template->assign_vars($e->returnArray());
  $template->assign_vars(array('OK'  => 'err'));
}

?>
